package com.briup.cms.exception;

import com.briup.cms.utils.MessageStatus;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LoginException extends RuntimeException{
    private static final long serialVersionUID = -1170457450324724193L;
    //创建了一个日志对象，通过调用日志对象的方法实现日志记录功能
    private Logger logger = LoggerFactory.getLogger(LoginException.class);

//    如何记录错误登陆次数 初步想法：错误第一次开始记录，同一用户名的登陆失败+1，成功后清零！
//    private int errorTimes = 0;
//    private String username;
    private MessageStatus messageStatus;

    public LoginException(String message) {
        super(message);
        logger.error(message);
    }

    public LoginException(MessageStatus messageStatus) {
        /**
         * 解决问题： 在全局GlobalExceptionHandler中 e.printStackTrace()没有办法抛出具体错误信息
         * 如———— com.briup.cms.exception.LoginException: 账号不存在或密码错误
         * 方法： super(messageStatus.message()); --给父类赋值
         */
        super(messageStatus.message());
        this.messageStatus = messageStatus;
        logger.error(messageStatus.message());
    }

    public LoginException(MessageStatus messageStatus,int errorTimes,String username) {
        this.messageStatus = messageStatus;

    }

    public MessageStatus getMessageStatus() {
        return messageStatus;
    }
}
